CSS pseudoselektorer

En pseudoselektor i CSS begynner med to kolon, f.eks. ::before eller ::after. De selekterer altså ikke selve HTML elementet, men elementer som er tilknyttet HTML elementet.

Pseudoselektorer er nært beslektet med CSS pseudoklasser.

Eksempel på avansert bruk av ::after

denne nettsiden tester jeg pseudoselektoren ::after i en sitatblokk (blockqote).

Universell utforming på løsningen

Jeg tror denne løsningen er svært dårlig for universell utforming, men jeg er ikke helt sikker. Hvilke fordeler og ulemper ser dere?

Jeg har gitt sitatblokken en selvvalgt attributt i HTML-koden: name. name er navnet på personen som har opphavet til sitatet.

<blockquote name="Vestigius">Si vis pacem, para bellum.</blockquote>

For å automatisk legge til navnet på opphavspersonen etter sitatet (og få fine anførseltegn rundt sitatet) så brukte jeg følgende CSS-kode.

blockquote::before {
  content: "«";
}
blockquote::after {
  content: "» \a — "attr(name);
  white-space: pre;
  font-style: italic;
}

blockquote::before gjelder rett før blockquote elementet, og vi ber CSS om å sette inn et anførselstegn for å starte sitatet.

I blockquote::after så gjør vi noen flere interessante saker.

Oversikt over noen typer pseudoselektorer

Pseudoselektor Forklaring
::before setter inn innhold før elementet
::after setter inn innhold etter elementet
::first-letter den første bokstaven i et avsnitt